package ebj.common.document_create.pdf.demo;
import java.io.FileOutputStream;  
import com.itextpdf.text.Document;  
import com.itextpdf.text.Font;  
import com.itextpdf.text.FontFactoryImp;  
import com.itextpdf.text.PageSize;  
import com.itextpdf.text.Paragraph;  
import com.itextpdf.text.pdf.BaseFont;  
import com.itextpdf.text.pdf.PdfPHeaderCell;  
import com.itextpdf.text.pdf.PdfPTable;  
import com.itextpdf.text.pdf.PdfWriter;  
   
/** 
 * 创建一个简单pdf文档，文字、表格 
 * 
 * @author zhangwd 
 * @version 1.0 
 * 
 */  
public class PdfDemo_1 {  
    private static void create() throws Exception {  
        // 创建一个文档（默认大小A4，边距36, 36, 36, 36）  
        Document document = new Document();  
        // 设置文档大小  
        document.setPageSize(PageSize.A4);  
        // 设置边距，单位都是像素，换算大约1厘米=28.33像素  
        document.setMargins(50, 50, 50, 50);  
   
        // 创建writer，通过writer将文档写入磁盘  
        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream("D:/tmp/documents/demo.1.pdf"));  
   
        // demo  
        String title = "凉州词";  
        String content = "黄河远上白云间，一片孤城万仞山。羌笛何须怨杨柳，春风不度玉门关。";  
   
        // 定义字体  
        FontFactoryImp ffi = new FontFactoryImp();  
        // 注册全部默认字体目录，windows会自动找fonts文件夹的，返回值为注册到了多少字体  
        ffi.registerDirectories();  
        // 获取字体，其实不用这么麻烦，后面有简单方法  
        Font font = ffi.getFont("宋体",BaseFont.IDENTITY_H,BaseFont.EMBEDDED, 12, Font.UNDEFINED, null);  
   
        // 打开文档，只有打开后才能往里面加东西  
        document.open();  
   
        // 设置作者  
        document.addAuthor("王之涣");  
        // 设置创建者  
        document.addCreator("王之涣");  
        // 设置主题  
        document.addSubject("测试");  
        // 设置标题  
        document.addTitle("凉州词");  
   
        // 增加一个段落  
        document.add(new Paragraph(title, font));  
        document.add(new Paragraph(content, font));  
        document.add(new Paragraph("\n\r", font));  
   
        // 创建表格，5列的表格  
        PdfPTable table = new PdfPTable(4);  
        table.setTotalWidth(PageSize.A4.getWidth()- 100);  
        table.setLockedWidth(true);  
        // 创建头  
        PdfPHeaderCell header = new PdfPHeaderCell();  
        header.addElement(new Paragraph(title, font));  
        header.setColspan(4);  
        table.addCell(header);  
        // 添加内容  
        table.addCell(new Paragraph("黄河远上白云间",font));  
        table.addCell(new Paragraph("一片孤城万仞山",font));  
        table.addCell(new Paragraph("羌笛何须怨杨柳",font));  
        table.addCell(new Paragraph("春风不度玉门关",font));  
   
        document.add(table);  
        // 关闭文档，才能输出  
        document.close();  
        writer.close();  
   }  
   
   public static void main(String[] args) throws Exception {  
        create();  
   }  
}